<?php
class AccessAction extends CommonAction {
	function index(){
		$UserDb = D('User');
		$role_id=$this->_get('role_id');
		if(in_array($role_id, $UserDb -> getRole(session(C('USER_AUTH_KEY'))))){
			$this->error('您无法给当前组授权');
		}
		$nodes = D('User')->getNode(session(C('USER_AUTH_KEY')));
		$this->all_node=D('Node')->getListToArray($role_id, 0, implode(',', $nodes));
		//让超级管理员可以给所有组授权
		
		$map = array();
		if(!session(C('ADMIN_AUTH_KEY'))){
			$map['user_id'] = session(C('USER_AUTH_KEY'));
		}
		
		$this->role=M('Role')->where(array('id'=>$role_id,$map))->find();
		
		if($re!==false){
			$this->display();
		}else{
			$this->error('参数错误');
		}
	}
	public function update(){ 
		if(isset($_POST['role_id'])){
			$userDb = D('User');
			$nodes = $userDb->getNode(session(C('USER_AUTH_KEY')));
			$flag=true;
			$role_id=$_POST['role_id'];
			$oaccess=$this->dao->where(array('role_id'=>$role_id))->delete();
			//非超级管理员不能更新自己所在的组权限
			//echo $userDb -> getRole(session(C('USER_AUTH_KEY')));exit;
			if(in_array($role_id,$userDb -> getRole(session(C('USER_AUTH_KEY'))))){
				$this->error('您没有权限更新当前角色的权限');
				exit;
			}
			//dump($role_id);exit();
			foreach($_POST['node_id'] as $k=>$v){
				$arr=explode('_',$v);
				$data['role_id']=$role_id;
				$data['node_id']=$arr[0];
				$data['level']=$arr[1];
				
				
				
				//超级管理员可以更新所有授权，非超级管理员只能更新最多的节点（当前用户所属组的权限列表）
				if(session(C('ADMIN_AUTH_KEY')) || in_array($data['node_id'],$nodes)){
					if(!$this->dao->add($data)){
						$flag=false;
					}
				}
			}
			if($flag){
		       $this->success('授权成功',U('index',array('role_id'=>$role_id)));
		    }else{
			   $this->error('操作失败！请稍候重试！！！',U('index',array('role_id'=>$role_id)));
		    }
		}
		
	}
}

?>